home *** CD-ROM | disk | FTP | other *** search
- /* SDEVICE.H
- *
- * Sound Device definitions
- *
- * Copyright 1994 Petteri Kangaslampi and Jarno Paananen
- *
- * This file is part of the MIDAS Sound System, and may only be
- * used, modified and distributed under the terms of the MIDAS
- * Sound System license, LICENSE.TXT. By continuing to use,
- * modify or distribute this file you indicate that you have
- * read the license and understand and accept it fully.
- */
-
-
- #ifndef __SDEVICE_H
- #define __SDEVICE_H
-
-
- #define SMPMAX 65519 /* max sample length (65536-16 - 1) */
- #define MAXINSTS 256 /* maximum number of instruments */
-
-
-
-
- /****************************************************************************\
- * enum smpTypes
- * -------------
- * Description: Sample types
- \****************************************************************************/
-
- enum smpTypes
- {
- smpNone = 0, /* no sample */
- smp8bit /* 8-bit unsigned sample */
- };
-
-
-
- /****************************************************************************\
- * enum sdPanning
- * --------------
- * Description: Sound Device panning values. Legal values range from
- * panLeft to panRight, in steps of 1, plus panSurround.
- * Surround sound is played from middle if surround is not
- * enabled.
- \****************************************************************************/
-
- enum sdPanning
- {
- panLeft = -64, /* left speaker */
- panMiddle = 0, /* middle (both speakers) */
- panRight = 64, /* right speaker */
- panSurround = 0x80 /* surround sound */
- };
-
-
-
- /****************************************************************************\
- * enum sdSmpPos
- * -------------
- * Description: Sample positions in memory
- \****************************************************************************/
-
- enum dsmSmpPos
- {
- sdSmpNone = 0, /* no sample */
- sdSmpConv, /* conventional memory */
- sdSmpEMS /* EMS */
- };
-
-
-
- /****************************************************************************\
- * enum sdStatus
- * -------------
- * Description: SoundDevice status
- \****************************************************************************/
-
- enum sdStatus
- {
- sdUnInitialized = 0,
- sdOK
- };
-
-
-
- /****************************************************************************\
- * enum sdMode
- * -----------
- * Description: Possible SoundDevice output modes
- \****************************************************************************/
-
- enum sdMode
- {
- sdMono = 1, /* mono */
- sdStereo = 2, /* stereo */
-
- sd8bit = 4, /* 8-bit output */
- sd16bit = 8, /* 16-bit output */
-
- sdLowQ = 16, /* low quality mixing */
- sdNormalQ = 32, /* normal quality mixing */
- sdHighQ = 64 /* high quality mixing */
- };
-
-
-
- /****************************************************************************\
- * struct SoundDevice
- * ------------------
- * Description: SoundDevice structure. See SDEVICE.TXT for documentation
- \****************************************************************************/
-
- typedef struct
- {
- ushort tempoPoll;
- ushort port;
- uchar IRQ;
- uchar DMA;
- ushort status;
- ushort modes; /* Possible modes for this SD, see enum */
-
- char *ID; /* SD ID string */
-
- int CALLING (far *Detect)(int *result);
- int CALLING (far *Init)(ushort mixRate, ushort mode);
- int CALLING (far *Close)(void);
- int CALLING (far *GetMixRate)(ushort *mixRate);
- int CALLING (far *GetMode)(ushort *mode);
- int CALLING (far *OpenChannels)(unsigned channels);
- int CALLING (far *CloseChannels)(void);
- int CALLING (far *ClearChannels)(void);
- int CALLING (far *Mute)(int mute);
- int CALLING (far *Pause)(int pause);
- int CALLING (far *SetMasterVolume)(uchar masterVolume);
- int CALLING (far *PlaySound)(unsigned channel, ulong rate);
- int CALLING (far *StopSound)(unsigned channel);
- int CALLING (far *SetRate)(unsigned channel, ulong rate);
- int CALLING (far *GetRate)(unsigned channel, ulong *rate);
- int CALLING (far *SetVolume)(unsigned channel, uchar volume);
- int CALLING (far *SetInstrument)(unsigned channel, ushort inst);
- int CALLING (far *SetPosition)(unsigned channel, ushort pos);
- int CALLING (far *GetPosition)(unsigned channel, ushort *pos);
- int CALLING (far *SetPanning)(unsigned channel, short panning);
- int CALLING (far *GetPanning)(unsigned channel, short *panning);
- int CALLING (far *MuteChannel)(unsigned channel, int mute);
- int CALLING (far *AddInstrument)(void far *sample, int smpType,
- ushort length, ushort loopStart, ushort loopEnd, uchar volume,
- int loop, ushort *instHandle);
- int CALLING (far *RemInstrument)(ushort inst);
- int CALLING (far *SetUpdRate)(ushort updRate);
- int CALLING (far *Play)(int *callMP);
- } SoundDevice;
-
-
-
- #endif
-